package com.ancun;

import java.util.List;
//import com.ancun.dao.BookDaoI;
//import com.ancun.dao.impl.BookImpl;
import com.ancun.Interfaces.IBookMapper;
import com.ancun.annocation.BookMapper;
import com.ancun.util.MyBatisUtil;
import org.apache.ibatis.session.SqlSession;

import com.ancun.entity.Book;

/**
 * Hello world!
 *
 */
public class App 
{
    public static void main( String[] args )
    {

        System.out.println( "Hello World!" );

        SqlSession session= MyBatisUtil.getSqlSession();
        if (session == null) {
            System.out.println("##Failed to connect mysql");
        }

        // XML + 命名空间 + ID
//        // 查询所有
//        String statement = "com.ancun.mapper.BookMapper.getAllBook";
//        List<Book> listBook = session.selectList(statement);
//
//        for (Book book: listBook) {
//            System.out.println(book.getId());
//            System.out.println(book.getBookName());
//        }
//
//        // id查询
//        statement = "com.ancun.mapper.BookMapper.selectBookById";
//        Book book = session.selectOne(statement, 1);
//
//        System.out.println(book.getId());
//        System.out.println(book.getBookName());
//
//        // 增加
//        statement = "com.ancun.mapper.BookMapper.addBook";
//        Book b = new Book();
//        b.setBookName("add book");
//        session.insert(statement, b);
//
//        // 删除
//        statement = "com.ancun.mapper.BookMapper.deleteBookById";
//        session.delete(statement, 14);
//
//        // 修改
//        statement = "com.ancun.mapper.BookMapper.updateBookById";
//        b.setId(4);
//        b.setBookName("update book");
//        session.update(statement, b);

        //
        // XML + 映射
        //
        Book b = new Book();
        b.setId(200);
        b.setBookName("mapper");
        IBookMapper bookMap = session.getMapper(IBookMapper.class);
        bookMap.addBook(b);

        //
        // 注解 + 映射
        //
//        BookMapper mapper = session.getMapper(BookMapper.class);
//
//        b.setBookName("annocation");
//        mapper.add(b);
//
//        b = mapper.getBook(5);
//        System.out.println(b.getBookName());
//
//        mapper.deleteBook(4);
//
//        b.setId(1);
//        b.setBookName("update book2");
//        mapper.updateBook(b);

        session.commit();
        session.close();
    }
}
